package com.ruoyi.recycle.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 家政订单对象 housekeeping_order
 * 
 * @author ruoyi
 * @date 2022-05-22
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("housekeeping_order")
@ApiModel("家政订单")
public class HousekeepingOrder implements Serializable
{
    private static final long serialVersionUID = 1L;

    /**
     * 订单号
     */
    @TableId(value = "hk_order_no", type = IdType.INPUT)
    @ApiModelProperty(name = "HKOrderNo", value = "家政订单号")
    @Excel(name = "家政订单号")
    private String HKOrderNo;

    /** 联系方式 */
    @TableField(value = "phone", whereStrategy = FieldStrategy.NOT_EMPTY)
    @Excel(name = "联系方式")
    @ApiModelProperty(name = "phone", value = "联系方式")
    private String phone;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createdTime;

    /** 取件地址 */
    @Excel(name = "取件地址")
    @TableField(value = "address")
    @ApiModelProperty(name = "address", value = "取件地址")
    private String address;

    /** 订单状态 */
    @Excel(name = "订单状态")
    @TableField(value = "status")
    @ApiModelProperty(name = "status", value = "订单状态")
    private String status;

    /** 预估价格 */
    @Excel(name = "预估价格")
    @TableField(value = "forecast_money")
    @ApiModelProperty(name = "forecastMoney", value = "预估价格")
    private BigDecimal forecastMoney;

    /**
     * 实际价格
     */
    @Excel(name = "实际价格")
    @TableField(value = "practical_money")
    @ApiModelProperty(name = "practicalMoney", value = "实际价格")
    private BigDecimal practicalMoney;

    /** 备注 */
    @Excel(name = "备注")
    @TableField(value = "remark")
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 创建人 */
    @TableField(value = "created_by")
    @ApiModelProperty(value = "创建人")
    private String createdBy;

    /** 更新人 */
    @TableField(value = "updated_by")
    @ApiModelProperty(name = "updatedBy", value = "更新人")
    private String updatedBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "updated_time")
    @ApiModelProperty(name = "updatedTime", value = "更新时间")
    private Date updatedTime;

    @Excel(name = "下单用户ID")
    @ApiModelProperty(name = "clientId", value = "下单用户ID")
    private Long clientId;

    @Excel(name = "提供服务综合站ID")
    @ApiModelProperty(name = "merchantId", value = "提供服务综合站ID")
    private Long merchantId;

    /**
     * 预约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(name = "appointmentTime", value = "预约时间")
    private Date appointmentTime;

    @ApiModelProperty(value = "家政服务列表")
    @TableField(exist = false)
    private List<HousekeepingCommodity> commodityList;

    /** 支付编号 */
    @ApiModelProperty(name = "paymentNo", value = "支付编号")
    private String paymentNo;

    /** 支付编号 */
    @ApiModelProperty(name = "incomeIntegral", value = "收入代金积分")
    private Integer incomeIntegral;
}
